import { defineStore } from "pinia";
import { ref } from "vue";

const getCart = defineStore('cart', () => {
    const cart = ref([])
    const useCartStore = goods => {
        // 找到goods和item的id相等
        const item = cart.value.find(item => goods.id == item.id)
        if (item) {
            // 加item以及goods的数量
            item.num += goods.num
        } else {
            // 购物车的值推回goods
            cart.value.push(goods)
        }
    }
    // 移除功能
    const removeCart = id => {
        // 依次给item执行一个回调函数，index为我们的索引（先遍历去找，再根据id来删）
        cart.value.forEach((item, index) => {
            // 如果这个id是我们要的，那么执行splice方法，从cart中删除
            if (item.id == id) {
                cart.value.splice(index, 1)
            }
        })
    }
    // 计数功能
    const cartNum = () => {
        let num = 0
        // debugger
        // 计算，循环遍历每一项
        cart.value.length > 0 ? cart.value.forEach(item => {
            num += item.num
        }) : null

        return num
    }
    // 结算功能
    const clearCart = (params) => {
        cart.value = params
       
    }
    return { cart, useCartStore, removeCart, cartNum, clearCart };

}, {
    //持久化存储
    persist: {
        enabled: true,
        strategies: [
            {
                key: 'user',
                Storage: localStorage
            }
        ]
    }
})

export default getCart